﻿using System;
using System.Collections.Generic;
using System.Text;
using NExt.Core.Model.Base;

namespace NExt.util
{
    public abstract class Observable : Observable<ObservableEvents>
    {
        public Observable()
        {
            //TODO: assign xtype
        }
    }

    public abstract class Observable<TEvents> : NExt.Core.Model.Base.Component
        where TEvents : ObservableEvents, new()
    {
        public Observable()
        {
            listeners = new TEvents();
        }

        public TEvents listeners { get; set; }
    }

    public class ObservableEvents : IEvents
    {
    }
}
